var MaxNumber=9999999.99;
var MinNumber=-9999999.99
//整数，可以为小数，不能为负数
function checkNumber(event) {

  var e = window.event || event;   
  var target = e.srcElement || e.target;   
  var k = e.keyCode; 
  var v = target.value; 
  
  
    if(k==229)return false; //过滤全角字符
    if(k==32)return false; //过滤空格
  
   if((e.shiftKey)&&((k==110)||(k==190))){
		return false;
		}//shift+小数点
   if(k==48){//开始为零的情况,
        if(v.length==0)
          return true;
           var index = v.indexOf(".");//前面有小数点，允许添加
             if(index>=0)return true;
             if(Math.abs(v)>0)return true;
             else return false;
  }
  if(k == 46){
  	return true;
 }  

  if(k==190||k==110){//小数点,
	     return checkPoint(v);
	  }
  if(k == 9){
  	return true;
  }
  var loc=getLocation(target);
  if(k == 189||k==109){//负号
  return false;
  } 

  if((e.shiftKey)&&((k == 48) || (k == 49) || (k == 50) || (k == 51) || (k == 52)|| (k == 53)|| (k == 54)|| (k == 55)|| (k == 56)|| (k == 57)|| (k == 190)|| (k == 110))){ 
    return false; 
  }
  if(isFunKey(k, v, 0)) {   
    return true;   
  }   
  var c = getChar(k);   
  if(target.value.length == '' && (c == '-' || c == '+')) {   
    return true;   
  }   
  if(isNaN(target.value + getChar(k))) {   
    return false;   
  } 
  return true;   
}

//可以负数的实数集
function checkNumber4(event) { 
  var e = window.event || event;   
  var target = e.srcElement || e.target;   
  var k = e.keyCode; 
  var v = target.value; 
  if(k==229)return false; //全角字符
  if(k==32)return false; //过滤空格
   if((e.shiftKey)&&((k==110)||(k==190))){
		return false;
		}//shift+小数点

  //过滤空格键。
  		
		
   if(k==48){//开始为零的情况,
        if(v.length==0)
          return true;
           var index = v.indexOf(".");//前面有小数点，允许添加
             if(index>=0)return true;
             if(Math.abs(v)>0)return true;
             else return false;
  }
 
	  if(k == 46){
	  	return true;
	  }  
	  if(k == 9){//tab键
	  	return true;
	  } 
	   if(k==190||k==110){//小数点,
	     return checkPoint(v);
	  }
	  var loc=getLocation(target);
	  if(k == 189||k==109){//tab键charAt(0)//负号
	  	if(v == ''||(loc==0&&v.indexOf("-")<0)){
	  		return true;
	  	}else{
	  		return false;
	  	}
	  } 
	  if((e.shiftKey)&&((k == 48) || (k == 49) || (k == 50) || (k == 51) || (k == 52)|| (k == 53)|| (k == 54)|| (k == 55)|| (k == 56)|| (k == 57))){ //      //屏蔽 shift+F10 
	    return false; 
	  }
 
	  if(isFunKey(k, v, 0)) {   
	    return true;   
	  }   
	  var c = getChar(k);   
	  if(target.value.length == '' && (c == '-' || c == '+')) {   
	    return true;   
	  }   
	  if(isNaN(target.value + getChar(k))) {   
	    return false;   
	  }   
	  return true;   
}
//是否有小数点,处理有两个小数点的情况
function checkPoint(v){ 

  if(v==''||v==null){//排除第小数点在最前面的情况
        return false;
     }else{
        var value=parseFloat(v);
			if(isNaN(value))
			 {
			return false;
			}
      var index = v.indexOf(".");//排除两个小数点的情况
      if(index>=0)
         return  false;
     } 
     return true;
}


//检验数值最大金额，最大不能输入十位数，小数点后面最多保留两位，只能输入正数(等待淘汰)
function checkNumber3(event,length){
 
   if(length==4)
 	   length=length+1;//原本保留四位的，现在保留五位
 	    
	 var isPrice=checkNumber(event);//判断是否是整数，如果不符合要求直接返回false,否则继续判断数值是否大于十位数
	 if(isPrice==false){//如果不符合正数，数值类型，返回false
	   return false;
	 }
	 var e = window.event || event; 
	 var target = e.srcElement || e.target;   
	 var k = e.keyCode; //按键的code值
	 var v = target.value;  //获取input的值；
	 var code=getChar(k);
	 if(k==8||k==37||k==38||k==39||k==40||k==8)//屏蔽backSpace键
    	return true;	
     var price=v+code;
     if(price*1>MaxNumber) //如果大于直接返回false
       return false;
       var index = v.indexOf(".");//如果有小数点，查看小数点后面的位数
       if(index>=0){//存在小数点，小数点后面只能保留length位
        var ch = v.substring(index+1,v.length);
        if(ch.length>=length&&getLocation(target)>index)
            {
			       if(isSelected())
			               return true;
			         else  return false;
			     } else return true;
        }
     return true;
}


//检验数值最数量，用于物品数量统计，小数点后面最多保留指定位，可以使负数(等待淘汰)
function checkNumber2(event,length){
   if(length==4)
 	   length=length+1;//原本保留四位的，现在保留五位

	 var isPrice=checkNumber4(event);//判断是否是自然数，如果不符合要求直接返回false,否则继续判断数值是否大于十位数
	 if(isPrice==false){//如果不符合正数，数值类型，返回false
	   return false;
	 }
	 var e = window.event || event; 
	 var target = e.srcElement || e.target;   
	 var k = e.keyCode; //按键的code值
	 var v = target.value;  //获取input的值；
	var code=getChar(k);
	  if(k==8||k==37||k==38||k==39||k==40||k==8)//屏蔽backSpace键
    	return true;
     var price=v+code;
     if(Math.abs(price)>MaxNumber) //如果大于10000000000直接返回false
       return false;
       var index = v.indexOf(".");//如果有小数点，查看小数点后面的位数
       if(index>=0){//存在小数点，小数点后面只能保留两位
	        var ch = v.substring(index+1,v.length);    //获取小数点后面的数字
	    
		     if(ch.length>=parseInt(length)&&getLocation(target)>index)
			    {
			       if(isSelected())
			               return true;
			         else  return false;
			     } else return true;
        }
     return true;
}


/*

专门用来处理输入数字长度；

symbol:标记是否可以为负号 true可以，false不可以

*/
function checkNumberLength(event,symbol,length){
	 var flag=false;

	 if(symbol){//可以输入负数
     	flag=checkNumber4(event);//判断是否是自然数，如果不符合要求直接返回false,否则继续判断数值是否大于十位数
	   }else {
 	      flag=checkNumber(event);//不可以输入负数
       }
	 if(flag==false){//如果不符合正数，数值类型，返回false
	   return false;
	 }
	 var e = window.event || event; 
	 var target = e.srcElement || e.target;   
	 var k = e.keyCode; //按键的code值
	 var v = target.value;  //获取input的值；
	var code=getChar(k);
	  if(k==8||k==37||k==38||k==39||k==40||k==8)//屏蔽backSpace键
    	return true;
     var price=v+code;
     if(Math.abs(price)>MaxNumber) //如果大于10000000000直接返回false
       return false;
       var index = v.indexOf(".");//如果有小数点，查看小数点后面的位数
       if(index>=0){//存在小数点，小数点后面只能保留两位
	        var ch = v.substring(index+1,v.length);    //获取小数点后面的数字
	        //处理选中一段文字，点击backspace键删除的事件。
		     if(ch.length>=parseInt(length)&&getLocation(target)>index)
			    {
			       if(isSelected())
			               return true;
			         else  return false;
			     } else return true;
        }
     return true;
}

//返回光标的位置
 function getLocation(obj){
	   obj.focus();
        var range = document.selection.createRange();
        range.moveStart("textedit",-1);
        return range.text.length;
  }


    //设置光标的位置
function setCaret(target,pos)
{
     var textbox =target;
     var r = textbox.createTextRange(); 
     r.collapse(true); 
     r.moveStart("character",pos); 
     r.select();
}


//是否有选中文字
function isSelected(){
	var text=null;
	if(navigator.appName=="Microsoft Internet Explorer"){
		text=document.selection.createRange().text;
	}else{
		text=window.getSelection();
	}
	if(text!=null&&text.length!=0){
	    return true;
	  }
	  else{
	    return false;
	 }
}




//判断是否是方向键好backspace键
function ifDesction(keyCode){
   if(keyCode==37||keyCode==38||keyCode==39||keyCode==40||keyCode==8)
    return true;
}
//数字为Int型，不能包含"."
function checkInt(event) {
  var e = window.event || event;   
  var target = e.srcElement || e.target;   
  var k = e.keyCode;  
  if(k == 9){//tab键
  	return true;
  }
  //第一个不能为0
  if(k == 48 && target.value.length == 0){
  	return false;
  }  
  if((e.shiftKey)&&((k == 48) || (k == 49) || (k == 50) || (k == 51) || (k == 52)|| (k == 53)|| (k == 54)|| (k == 55)|| (k == 56)|| (k == 57))){ //屏蔽 shift+F10 
    return false;
  }
  var v = target.value;
 
  if(isFunKey2(k, v, 1)){   
    return true;   
  }   
  var c = getChar(k);   
  if(target.value.length == '' && (c == '-' || c == '+')) {   
    return true;   
  }   
  if(isNaN(target.value + getChar(k))) {   
    return false;   
  }   
  return true;   
}

function isFunKey2(code, value, flag) {
  //  8 --> Backspace
  // 35 --> End
  // 36 --> Home
  // 37 --> Left Arrow
  // 39 --> Right Arrow
  // 46 --> Delete
  //110 -->台式机键盘数字键盘上的
  // 112~123 --> F1~F12
  //
  var funKeys = [8, 35, 36, 37, 39, 46,110];  
  if(value == '' || value.split('.').length != 1 || flag == 1){
  	funKeys.pop();
  }
  for(var i = 112; i <= 123; i++) {   
    funKeys.push(i);   
  }   
  for(var i = 0; i < funKeys.length; i++) {   
    if(funKeys[i] == code) {   
      return true;   
    }   
  }   
  return false;   
}   

function isFunKey(code, value, flag) {
  //  8 --> Backspace
  // 35 --> End
  // 36 --> Home
  // 37 --> Left Arrow
  // 39 --> Right Arrow
  // 46 --> Delete
  // 190 --> .
  //110 -->台式机键盘数字键盘上的
  // 112~123 --> F1~F12
  //
  var funKeys = [8, 35, 36, 37, 39, 46, 190, 110];  
  if(value == '' || value.split('.').length != 1 || flag == 1){
  	funKeys.pop();
  }
  for(var i = 112; i <= 123; i++) {   
    funKeys.push(i);   
  }   
  for(var i = 0; i < funKeys.length; i++) {   
    if(funKeys[i] == code) {   
      return true;   
    }   
  }   
  return false;   
}   
  
function getChar(k) {  
  if(k >= 48 && k <= 57) {   
    return String.fromCharCode(k);   
  }   
  if(k >= 96 && k <= 105) {   
    return String.fromCharCode(k - 48);   
  }
 return String.fromCharCode(k);
} 

//打小键盘兼容性问题。返回keyValue值
function checkInt1(k) {  
  if(k >= 48 && k <= 57) {   
    return true;
  }   
  if(k >= 96 && k <= 105) {   
   return  true;  
  }
   return false;
} 




//去除前后空格脚本
function replacStr(str){
   	str = str.replace(/(^\s*)|(\s*$)/g, "");   
	//str = str.replace(/\s/g,"");   
	//try { return s.replace(/^\s+\s+$/g,""); } catch(e) { return s; }	
	return str; 
}

//转换成大写
 //转换成大写
function codeToUpperCase(event){
  var e = window.event || event;   
  var target = e.srcElement || e.target;   
  var code =(e.keyCode || e.which);
  var loc=getLocation(target);
  if (code >= 65 && code <=90){
   	target.value=target.value.toUpperCase();
  }
  setCaret(target,loc);
  return true;  
}
  //最多保留两位小数，如果是整数比如3，返回3
	function changeTwoDecimal(x)
		{
		var f_x = parseFloat(x);
		if (isNaN(f_x))
		{
		alert('function:changeTwoDecimal->parameter error');
		return false;
		}
		var f_x = Math.round(x*100)/100;
		
		return f_x;
		}
		
	
  
	//保留指定位数的小数
function changeTwoDecimal_f(x,length)
  {   
   if(length==4)
 	   length=length+1;//原本保留四位的，现在保留五位
       var len=1;//保留的位数
       for(var i=0;i<length;i++){
         len*=10;
       }
		var f_x = parseFloat(x);
		var f_x = Math.round(x*len)/len;
		var s_x = f_x.toString();
		var pos_decimal = s_x.indexOf('.');
		if (pos_decimal < 0)
		{
		pos_decimal = s_x.length;
		s_x += '.';
		}
		while (s_x.length <= pos_decimal + 2)
		{
		s_x += '0';
		}
		return s_x;
}


//小数点截断
function changeDecimalToSuitable(x,type)
  {   
    var length=0;
    if(type=='price'){
        length=5;
    }else if(type=='qty'){
        length=2;
    }else if(type=='totalmoney'){
        length=2;
    }else if(type=='percent'){
      length=2;
    }else{
    alert("changeDecimalToSuitable 参数错误");
    }
    var len=1;
     for(var i=0;i<length;i++){
         len*=10;
       }
       
		var f_x = parseFloat(x);
		var f_x = Math.round(x*len)/len;
		var s_x = f_x.toString();
		var pos_decimal = s_x.indexOf('.');
		if (pos_decimal < 0)
		{
		pos_decimal = s_x.length;
		s_x += '.';
		}
		while (s_x.length <= pos_decimal + 2)
		{
		s_x += '0';
		}
		return s_x;
}







//用于输入纯数字的检验，一般用于onkeyDown事件，判断输入的是否是数字，如果可以有小数点和负数，那么请用上面的方法
function checkNumberInt(event){
	  var e = window.event || event;   
	  var target = e.srcElement || e.target; 
	  var k = e.keyCode;
	  if(k==229)return false; //过滤全角字符
      if(k==32)return false; //过滤空
	  if(k==8||k==37||k==38||k==39||k==40){//backspace键
	    return true;
	  }  
	  if(k == 9){//tab键
	  	return true;
	  }
	  if(!checkInt1(k)){
	     return false;
	  }
	  if((e.shiftKey)&&((k == 48) || (k == 49) || (k == 50) || (k == 51) || (k == 52)|| (k == 53)|| (k == 54)|| (k == 55)|| (k == 56)|| (k == 57))){ //屏蔽 shift+F10 
	    return false;
	  }  
	  
	  return true;   
}



//在此之前，要判断输入的值是否是浮点数，如果不是浮点数，将输入的值清空
//olblur="javascript:checkPrice(this)"

 function onBlurcheckPrice(inputTest){
  
  if(inputTest.value==""||inputTest.value==null){
		  return false;
	}

	var value=parseFloat(inputTest.value);
   
    if(value!=inputTest.value){	
		  alert("含有非法字符！");
		  inputTest.value="0.00";
		  return false;
		
		} 
	var reg=/^([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)$/gm;
	var result=reg.test(value);
	if(!result){
		  alert("含有非法字符！");
		  inputTest.value="0.00";
		  return false;
		}	
	  if(Math.abs(value)>MaxNumber){
		  alert("将要处理的数值过大，数据库可能无法处理！");
		  return false;
	   }
	   return true;
 }	


//传进来一个input text的对象。
//判断输入的数值，是否在MaxNumber和MinNumber之间，
function checkPrice(priceValue){
 
   if(priceValue==""||priceValue==null){
     return false;
   }
   
   var value=parseFloat(priceValue);

    if(value==null||value!=priceValue){//判断可能的非法字符
           alert("含有非法字符！");
           return false;
    }
    
    if(Math.abs(value)>MaxNumber){
       alert("数值过大，数据库可能无法处理");
       return false;
     }
     return true;
 }	
 
 